package org.jiuling.local.tools.convert;

import org.jiuling.local.tools.exception.LocalToolsException;

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.util.Base64;

/**
 * 图片转换
 * @author 紫灵
 * @date 2022年09月14日 10时51分55秒
 */
@Deprecated
public class ImageConvert {

    /**
     * 通过文件转base64
     * @param file 文件
     * @return base64格式的图片
     */
    public static String toBase64ByFile(File file) throws LocalToolsException {
        if(!file.exists()){
            throw new LocalToolsException("该文件不存在！");
        }
        ByteArrayOutputStream outputStream;
        try{
            BufferedImage bufferedImage = ImageIO.read(file);
            outputStream = new ByteArrayOutputStream();
            String fileName = file.getName();
            String formatName = fileName.substring(fileName.lastIndexOf(".")).replace(".","");
            ImageIO.write(bufferedImage, formatName, outputStream);
        } catch (IOException e) {
            throw new LocalToolsException(e.getLocalizedMessage());
        }
        // 对字节数组Base64编码
        Base64.Encoder encoder = Base64.getEncoder();
        return encoder.encodeToString(outputStream.toByteArray());// 返回Base64编码过的字节数组字符串
    }

    /**
     * 通过路径转base64
     * @param path 路径
     * @return base64格式的图片
     */
    public static String toBase64ByPath(String path) throws LocalToolsException {
        File file = new File(path);
        return toBase64ByFile(file);
    }
}
